import {TBizcEneryEquipApi} from '@/api/equip/tBizcEneryEquipApi.js'
import {accountQueryApi} from '@/api/equip/accountQueryApi.js'
import {Message, MessageBox} from 'element-ui';
import {getInfo} from "@/api/login";
import {listDept} from "@/api/system/dept";

export const GridEvent = {
  OptionData_yxzt: [],
  OptionData_sblxmc: [],
  OptionData_gldw: [],
  // OptionData_ssnyzmc:[],
  OptionData_jlfs: [],
  OptionData_sskf: [],
  OptionData_sblx: [],
  OptionData_sbzt: [],
  newForm() {  //打开新增页面窗口//
    formModel.title = '新增';
    formModel.dialogVisible = true;
    formModel.width = '70%';
    formModel.componentId = 'EneryEquipForm';
    formModel.TBizcEneryEquipFormData.type = 'insert';
  },
  editForm(row) { 				//数据编辑//
    formModel.title = '编辑';
    formModel.dialogVisible = true;
    formModel.width = '70%';
    formModel.componentId = 'EneryEquipForm';
    formModel.TBizcEneryEquipFormData.type = 'update';
    formModel.TBizcEneryEquipFormData.data = row;
  },
  viewForm(row) { 				//数据编辑//
    formModel.title = '设备详情';
    formModel.dialogVisible = true;
    formModel.width = '70%';
    formModel.componentId = 'EneryEquipForm';
    formModel.TBizcEneryEquipFormData.type = 'view';
    formModel.TBizcEneryEquipFormData.data = row;
  },
  // exportData:{
  //   columnCodeList:[],
  //   columnNameList:[],
  //   columnWidthList:[]
  // },
  getExportInfo(xGrid) {

  },

  getOptionData_sskf: (xGrid) => {//获取计量方式：字典表
    accountQueryApi.queryDictData().then(res => {
      if (xGrid) {
        // 修改编辑框
        // const sexColumn = $grid.getColumnByField('sex')
        // sexColumn.editRender.options = sexList
        // 修改查询条件列表
        let optionList = [
          {label: '请选择', value: ''}
        ]
        res.data.forEach((item) => {
          optionList.push({
            label: item.name, value: item.id
          })
        })
        // const item = xGrid.getFormItems(1)
        // item.itemRender.options = optionList
        GridEvent.OptionData_sskf = optionList;
        console.log(GridEvent.OptionData_sskf)
      }
    }).catch(err => {
      console.log(err)
    })
  },
  getOptionData_sblx: (xGrid) => {
    accountQueryApi.queryDictDatasb('1000').then(res => {
      if (xGrid) {
        // 修改编辑框
        // const sexColumn = $grid.getColumnByField('sex')
        // sexColumn.editRender.options = sexList
        // 修改查询条件列表
        let optionList = [
          {label: '请选择', value: ''}
        ]
        res.data.forEach((item) => {
          optionList.push({
            label: item.name, value: item.id
          })
        })

        const item = xGrid.getFormItems(5)
        item.itemRender.options = optionList
        GridEvent.OptionData_sblx = optionList;
      }
    }).catch(err => {
      console.log(err)
    })
  },
  wzlbmcChangeEvent: (xGrid, value) => {
    xGrid._data.formData.sblxmc = null
    accountQueryApi.queryDictDatasb(value.data.wzlbmc).then(res => {
      if (xGrid) {
        // 修改编辑框
        // const sexColumn = $grid.getColumnByField('sex')
        // sexColumn.editRender.options = sexList
        // 修改查询条件列表
        let optionList = [
          {label: '请选择', value: ''}
        ]
        res.data.forEach((item) => {
          optionList.push({
            label: item.name, value: item.id
          })
        })

        const item = xGrid.getFormItems(5)
        item.itemRender.options = optionList
        // GridEvent.OptionData_sblx = optionList;
      }
    }).catch(err => {
      console.log(err)
    })
  },
  // getOptionData_ssnyzmc:(xGrid)=>{//获取所属能源站：字典表
  //   TBizcEneryEquipApi.queryDictData('EN_EQUIP_SSNYZ').then(res => {
  //     if (xGrid) {
  //       // 修改编辑框
  //       // const sexColumn = $grid.getColumnByField('sex')
  //       // sexColumn.editRender.options = sexList
  //       // 修改查询条件列表
  //       let optionList = [
  //         { label: '请选择', value: '' }
  //       ]
  //       res.data.forEach((item)=>{
  //         optionList.push({label: item.value, value: item.code})
  //       })
  //       // const item = xGrid.getFormItems(6)
  //       //item.itemRender.options = optionList
  //       GridEvent.OptionData_ssnyzmc = optionList;
  //     }
  //   }).catch( err => {
  //     console.log(err)
  //   })
  // },
  getOptionData_jlfs: (xGrid) => {//获取计量方式：字典表
    TBizcEneryEquipApi.queryDictData('EN_EQUIP_JLFS').then(res => {
      if (xGrid) {
        // 修改编辑框
        // const sexColumn = $grid.getColumnByField('sex')
        // sexColumn.editRender.options = sexList
        // 修改查询条件列表
        let optionList = [
          {label: '请选择', value: ''}
        ]
        res.data.forEach((item) => {
          optionList.push({label: item.value, value: item.code})
        })
        // const item = xGrid.getFormItems(6)
        // item.itemRender.options = optionList
        GridEvent.OptionData_jlfs = optionList;
      }
    }).catch(err => {
      console.log(err)
    })
  },
  getOptionData_yxzt: (xGrid) => {//获取运行状态：字典表
    TBizcEneryEquipApi.queryDictData('EN_EQUIP_YXZT').then(res => {
      if (xGrid) {
        // 修改编辑框
        // const sexColumn = $grid.getColumnByField('sex')
        // sexColumn.editRender.options = sexList
        // 修改查询条件列表
        let optionList = [
          {label: '请选择', value: ''}
        ]
        res.data.forEach((item) => {
          optionList.push({label: item.value, value: item.code})
        })
        const item = xGrid.getFormItems(6)
        item.itemRender.options = optionList
        GridEvent.OptionData_yxzt = optionList;
      }
    }).catch(err => {
      console.log(err)
    })
  },
  getOptionData_sbzt: (xGrid) => {//获取设备状态：字典表
    TBizcEneryEquipApi.queryDictData('EN_EQUIP_STATE').then(res => {
      if (xGrid) {
        // 修改编辑框
        // const sexColumn = $grid.getColumnByField('sex')
        // sexColumn.editRender.options = sexList
        // 修改查询条件列表
        let optionList = [
          {label: '请选择', value: ''}
        ]
        res.data.forEach((item) => {
          optionList.push({label: item.value, value: item.code})
        })
        const item = xGrid.getFormItems(7)
        item.itemRender.options = optionList
        GridEvent.OptionData_sbzt = optionList;
      }
    }).catch(err => {
      console.log(err)
    })
  },
  getOptionData_sblxmc: (xGrid) => {//获取设备类型名称：字典表
    // TBizcEneryEquipApi.queryDictData('EN_EQUIP_SBLX').then(res => {
    //   if (xGrid) {
    //     // 修改编辑框
    //     // const sexColumn = $grid.getColumnByField('sex')
    //     // sexColumn.editRender.options = sexList
    //     // 修改查询条件列表
    //     let optionList = [
    //       { label: '', value: '' }
    //     ]
    //     res.data.forEach((item)=>{
    //       optionList.push({label: item.value, value: item.code})
    //     })
    //     const item = xGrid.getFormItems(5)
    //     item.itemRender.options = optionList
    //     GridEvent.OptionData_sblxmc = optionList;
    //   }
    // }).catch( err => {
    //   console.log(err)
    // })
  },
  getOptionData_gldw: (xGrid) => {//获取管理单位：字典表
    getInfo().then(res => {
      let params = {
        deptId: res.user.dept.deptId,
        parentId: res.user.dept.parentId
      }
      listDept(params).then(res => {

        if (xGrid) {
          // 修改编辑框
          // const sexColumn = $grid.getColumnByField('sex')
          // sexColumn.editRender.options = sexList
          // 修改查询条件列表
          let optionList = [
            {label: '请选择', value: ''}
          ]
          res.data.forEach((item) => {
            // console.log(item,'item.,,,');
            optionList.push({label: item.deptName, value: item.deptId})
          })
          const item = xGrid.getFormItems(0)
          item.itemRender.options = optionList
          GridEvent.OptionData_gldw = optionList;
        }
      })
    })
  },
  importXls(info) {   //模板导入
    let formData = new FormData();
    formData.append("file", info.file);
    // debugger
    TBizcEneryEquipApi.excelImport(formData).then(res => {
      this.$message.success(res)
      // console.log(res,'sssss');
    }).catch(err => {
      console.log(err)
    })
  },
  uploadFile(info) {
    if (info.file.status !== 'uploading') {
      console.log(info.file, info.fileList);
    }
    if (info.file.status === 'done') {
      this.$message.success(`${info.file.name} file uploaded successfully`);
    } else if (info.file.status === 'error') {
      this.$message.error(`${info.file.name} file upload failed.`);
    }
  },

  exportXls(xGrid) {//导出
    if (xGrid) {
      const dataParams = {}
      // let formData = xGrid.getProxyInfo().form;
      // const queryParams = Object.assign({}, formData)

      const queryParams = Object.assign({}, xGrid.getProxyInfo().form)
      const pageParams = {
        pageSize: xGrid.tablePage.pageSize,
        pageNo: xGrid.tablePage.currentPage,
        entity: {
          // sbbm: queryParams.sbbm, //设备编码//
          sbmc: queryParams.sbmc === null ? queryParams.sbmc : '*' + queryParams.sbmc + '*', //设备名称//
          yxzt: null, //运行状态  10-未投运
// 20-在运queryParams.yxzt.value,
// 30-退役
// 40-报废//
          jlfs: queryParams.jlfs === null ? queryParams.jlfs : '*' + queryParams.jlfs + '*', //计量方式//
          // sfsc: queryParams.sfsc, //是否删除  0否1是//
          cap: queryParams.cap === null ? queryParams.cap : '*' + queryParams.cap + '*', //容量//
          // sblx: queryParams.sblx, //设备类型编码  //
          sblxmc: queryParams.sblxmc, //设备类型名称//
          // num: queryParams.num, //数量//
          standard: queryParams.standard === null ? queryParams.standard : '*' + queryParams.standard + '*', //规格//
          xh: queryParams.xh === null ? queryParams.xh : '*' + queryParams.xh + '*', //型号//
          cjmc: queryParams.cjmc === null ? queryParams.cjmc : '*' + queryParams.cjmc + '*', //厂家名称//
          // ccbm: queryParams.ccbm, //出厂编码//
          // ccTime: queryParams.ccTime, //出场日期//
          sjdhTimeStart: queryParams.sjdhTimeStart, //实际到货日期//
          sjdhTimeEnd: queryParams.sjdhTimeEnd, //至
          cyDwmc: queryParams.cyDwmc === null ? queryParams.cyDwmc : '*' + queryParams.cyDwmc + '*', //产业单位名称//
          xmlxr: queryParams.xmlxr === null ? queryParams.xmlxr : '*' + queryParams.xmlxr + '*', //项目联系人//
          xmmc: queryParams.xmmc === null ? queryParams.xmmc : '*' + queryParams.xmmc + '*', //项目名称//
          xmbh: queryParams.xmbh === null ? queryParams.xmbh : '*' + queryParams.xmbh + '*', //项目编号//
          zlqx: queryParams.zlqx === null ? queryParams.zlqx : '*' + queryParams.zlqx + '*', //租赁期限//
          // yjccTime: queryParams.yjccTime, //预计撤场时间//
          xmdz: queryParams.xmdz === null ? queryParams.xmdz : '*' + queryParams.xmdz + '*', //项目地址//
          lxrPhone: queryParams.lxrPhone === null ? queryParams.lxrPhone : '*' + queryParams.lxrPhone + '*', //联系人电话//
          // lxTime: queryParams.lxTime, //联络时间//
          djhszt: queryParams.djhszt, //单据回收状态  0未回收 1 已回收//
          // cyDwbm: queryParams.cyDwbm, //产业单位编码//
        },
        column: "",
        order: "",
        paramsMap: {}
      }
      // GridEvent.getExportInfo(xGrid);
      let newColumnCodeList = [];
      let newColumnNameList = [];
      let newColumnWidthList = [];
      let columnCodeList = [];
      let columnNameList = [];
      let columnWidthList = [];
      let columns = xGrid.columns;

      columns.forEach(item => {
        if (item.field) {
          // debugger
          console.log(item, 'uuuuuu');
          if (item.hasOwnProperty('visible')) {

            if (item.visible) { //显示的状态
              newColumnCodeList.push(item.field)
              newColumnNameList.push(item.title)
              newColumnWidthList.push(item.width ? item.width : 200)
            }
          } else {
            columnCodeList.push(item.field)
            columnNameList.push(item.title)
            columnWidthList.push(item.width ? item.width : 200)
          }
        }
      })
      dataParams['columnCodeList'] = columnCodeList
      dataParams['columnNameList'] = columnNameList
      dataParams['columnWidthList'] = columnWidthList
      // dataParams['columnCodeList'] =GridEvent.getExportInfo.columnCodeList.join(",");
      // dataParams['columnNameList'] =GridEvent.getExportInfo.columnNameList.join(",");
      // dataParams['columnWidthList'] =GridEvent.getExportInfo.columnWidthList.join(",");
      dataParams['fileName'] = '新能源设备';
      dataParams['dataNum'] = xGrid.tablePage.total;
      // queryParams['pageNo'] = xGrid.tablePage.currentPage;
      // queryParams['pageSize'] = xGrid.tablePage.pageSize;
      dataParams['url'] = '/t-bizc-enery-equip/getList';
      dataParams['queryParams'] = pageParams

      // debugger
      TBizcEneryEquipApi.exportXls(dataParams).then(res => {
        console.log(res, 'rrrrs');
        GridEvent.download(res, '新能源设备' + '.xls')
      }).catch(err => {
        console.log(err)
      })
    }
  },

  download(data, fileName) {  //下载核心方法
    if (!data) {
      return
    }
    let blob = new Blob([data])
    // debugger
    if ('download' in document.createElement('a')) { // 不是IE浏览器
      let url = window.URL.createObjectURL(blob)
      let link = document.createElement('a')
      link.style.display = 'none'
      link.href = url
      link.setAttribute('download', fileName)
      document.body.appendChild(link)
      link.click()
      document.body.removeChild(link) // 下载完成移除元素
      window.URL.revokeObjectURL(url) // 释放掉blob对象
    } else { // IE 10+
      window.navigator.msSaveBlob(blob, fileName)
    }
  },
  deleteEvent(rows, xGrid) {  	//数据删除//
    MessageBox.confirm('此操作将永久删除, 是否继续?', '提示', {
      confirmButtonText: '确定',
      cancelButtonText: '取消',
      type: 'warning'
    }).then(() => {
      // let formData = new FormData
      // rows.map(item=>{
      //   formData.append('sbbm',item.sbbm)
      // });
      // formData.append("sfsc","1");
      // const queryParams = Object.assign({}, rows)
      // // queryParams[0].sfsc = '1'
      let queryParams = []
      rows.map(item => {
        queryParams.push({
          sbbm: item.sbbm,
          sfsc: '1'
        })
      })
      //  debugger
      // console.log(rows,'rows');
      //删除数据后台如何处理，按照实际的�? 处理多行记录信息rows//
      TBizcEneryEquipApi.update(queryParams).then(res => {
        //删除成功后，会掉表格刷新//
        xGrid.commitProxy('query');
        Message({
          type: 'success',
          message: '删除成功!'
        });
      }).catch(err => {
        console.error(err)
      })
    }).catch(() => {
      Message({
        type: 'info',
        message: '已取消删!'
      });
    });
  },
  initFormData(formData) { 		//查询框数据初始化//
                              // console.log(formData,'99999',GridEvent.OptionData_yxzt);
                              // formData.sbztbm = '0'
  },
  async queryData(page, formData) {  //查询表格数据//
    const queryParams = Object.assign({}, formData)
    // debugger
    const pageParams = {
      pageSize: page.pageSize,
      pageNo: page.currentPage,
      entity: {
        // sbmc: !queryParams.sbmc?queryParams.sbmc:'*'+queryParams.sbmc+'*', //设备名称//
        sbmc: queryParams.sbmc, //设备名称//
        wzlbbm: queryParams.wzlbmc,//物资类别
        sbgg: queryParams.sbgg, //规格//
        xh: queryParams.xh, //型号//
        gldwbm: queryParams.gldwmc,//管理单位
        sblxbm: queryParams.sblxmc, //设备类型名称//
        yxzt: queryParams.yxzt, //运行状态  10-未投运
        sbztbm: queryParams.sbztbm,
        sskfbm: queryParams.sskfmc
      },
      paramsMap: {},
      column: '',
      order: ''
    };
    return TBizcEneryEquipApi.page(pageParams)
  },

}
export const formModel = {
  title: '',            //窗口标题//
  dialogVisible: false, //是否弹出显示//
  width: '70%',          //窗口宽度//
  fullscreen: false,    //是否全屏//
  closeOnClickModal: false, //是否可以通过点击 modal 关闭 Dialog//
  top: '5vh',			 //顶部位置//
  componentId: 'EneryEquipForm',  //默认显示组件//

  TBizcEneryEquipFormData: {
    type: '',
    data: {
      sbbm: '',        //设备编码//
      sbmc: '',        //设备名称//
      yxzt: '',        //运行状态  10-未投运
// 20-在运
// 30-退役
// 40-报废//
      jlfs: '',        //计量方式//
      sfsc: '',        //是否删除  0否1是//
      cap: '',        //容量//
      sblx: '',        //设备类型编码  //
      sblxmc: '',        //设备类型名称//
      num: '',        //数量//
      standard: '',        //规格//
      xh: '',        //型号//
      cjmc: '',        //厂家名称//
      ccbm: '',        //出厂编码//
      ccTime: '',        //出场日期//
      sjdhTime: '',        //实际到货日期//
      cyDwmc: '',        //产业单位名称//
      xmlxr: '',        //项目联系人//
      xmmc: '',        //项目名称//
      xmbh: '',        //项目编号//
      zlqx: '',        //租赁期限//
      yjccTime: '',        //预计撤场时间//
      xmdz: '',        //项目地址//
      lxrPhone: '',        //联系人电话//
      lxTime: '',        //联络时间//
      djhszt: '',        //单据回收状态  0未回收 1 已回收//
      cyDwbm: '',        //产业单位编码//
    }
  },
  closeDialogEvent(reload, xGrid) {
    formModel.dialogVisible = false;
    if (reload) {
      xGrid.commitProxy('query');
    }
  }
}

